package cc.rengu.oltp.service.common.dao;


import cc.rengu.oltp.service.common.entity.SysParam;

import java.util.List;
import java.util.Set;

/**
 * 系统参数表接口类
 * Created by 王成 on 2018/7/3.
 */
public interface SysParamMapper {
    /**
     * 加载系统参数信息
     *
     * @param dbPoolCashNode 数据源缓存节点名称
     * @param sysParamList   系统参数信息集合
     * @return 系统参数信息
     * @throws Exception 异常
     */
    void loadSysParamInfo(Set<String> dbPoolCashNode, List<SysParam> sysParamList) throws Exception;

    /**
     * 根据主键查询系统参数信息
     *
     * @param instId    机构标识
     * @param paramType 参数类型
     * @param paramKey  参数KEY
     * @return 参数信息
     * @throws Exception 异常
     */
    SysParam selectSysParamByPrimaryKey(String instId, String paramType, String paramKey) throws Exception;

    /**
     * 根据机构标识及参数类型查询所有参数信息
     *
     * @param instId    机构标识
     * @param paramType 参数类型
     * @return 参数信息集合
     * @throws Exception 异常
     */
    List<SysParam> selectSysParamByInstIdAndParamType(String instId, String paramType) throws Exception;

    /**
     * 根据机构标识查询所有参数信息
     *
     * @param instId 机构标识
     * @return 机构下所有参数
     * @throws Exception 异常
     */
    List<SysParam> selectSysParamByInstId(String instId) throws Exception;

    /**
     * 登记参数表
     *
     * @param sysParam 系统参数信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertSysParam(SysParam sysParam) throws Exception;

    /**
     * 根据主键更新参数信息
     *
     * @param sysParam 系统参数信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateSysParamByPrimaryKey(SysParam sysParam) throws Exception;
}
